//=============================================================================
// Copyright (C) 2011 Athip Rooprayochsilp <athipr@gmail.com>
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.
//=============================================================================

#ifndef __TCSMART_VS_CLIENTMSGHANDLER__
#define __TCSMART_VS_CLIENTMSGHANDLER__

#include <net/DataDescriptor.h>
#include <net/DataHandler.h>

class ClientMsgHandler : public sai::net::DataHandler
{
private:
  typedef void (__stdcall * MsgCallback)(const char* ip, const char * msg);

  static ClientMsgHandler* _instance;
  MsgCallback _cb;

private:
  ClientMsgHandler();

public:
  static ClientMsgHandler* GetInstance();
  ~ClientMsgHandler();

  void setCallback(MsgCallback cb);
  void processDataEvent(sai::net::DataDescriptor& desc, std::string& msg);
};

#endif
